System for searching and selecting hierarchically structured objects

ABSTRACT

A system includes elements for encoding data concerning the objects by (a) setting up a table (T) with hierarchical structure of the set of attributes (Cna) and contents (Cnu) associated with the objects; and (b) setting up for each stored object a file wherein each attribute of the object and its contents is identified by the specific code assigned to the attribute-contents pair in the table. The system comprises calculating and interfacing elements for (c) constructing a first table containing the set of stored files concerning a request; (d) constructing a second table containing the set of contents present in any of the files of the first table; (e) presenting successive selections of attributes and contents in hierarchical order defined in the second table; (f) updating the first table; (g) repeating operations e) and f) until one predetermined condition is fulfilled; and (h) presenting theresult of the search.

BACKGROUND OF THE INVENTION

The present invention relates to a method of processing data to searchfor and to assist with choosing objects from a set of objects stored inthe form of records in a data processing system, wherein each object isassociated with the value of each of several attributes, as well as adata processing and man/machine interface system for implementing themethod.

Hereinafter, the term “object” designates any material or non-materialentity that can be described by a number of attributes, also referred tohereinafter as containers, which attributes can have one of severalgiven values referred to also as contents. In an ordinary database, allof the attributes or containers are common to all the records and theinformation from a record consists of the list of the associated values.These databases are searched using keywords, crossed criteria, etc. Invery many cases, searching conventional databases can yield no responseor too many responses.

Thus, to find a web site on the Internet, it is necessary to consultsearch engines which either give no response or offer thousands or tensof thousands of responses. The user, faced with a long list ofresponses, is not able to refine the query and furthermore does not knowhow pertinent the responses offered can be expected to be.

SUMMARY OF THE INVENTION

The invention aims to provide a data processing system for searching forobjects that guarantees always to offer users responses, in the form ofshortlists of pertinent responses, using data processing resources oflimited power and offering fast processing and a reasonable quality/costtrade-off.

To this end, the invention proposes a data processing system forselecting objects from a set of objects stored in the form of files insaid system, wherein each object is identified by the value of each of aplurality of attributes, comprising

-   a1) means for storing a hierarchically structured table of all of    the attributes and values associated with said objects, in which    table said attributes are classified hierarchically in a plurality    of rows, each attribute of a secondary row is attached to a value of    an attribute of hierarchically higher row, and each pair consisting    of an attribute and its value is associated with a specific code,-   a2) means for storing a file for each stored object, in which file    each attribute of said object and its value is identified by the    specific code assigned to said attribute-value pair in said table,    and-   b) computation and interface means for, in response to a search    request from an enquirer:    -   c) constructing a first table (S) containing all the stored        files relating to said request,    -   d) constructing, by means of said codes, and in accordance with        said hierarchical structure of the attribute-value pairs, a        second table (C) of the values present in any of said files of        the first table (S),    -   e) showing successive choices of attributes and values to, said        enquirer, in the hierarchical order defined in said second table        (C),    -   f) updating said first table (S) in response to the choice by        said enquirer of an attribute-value pair consecutively to said        step e), by selecting in said first table (S) the files        including said selected attribute-value pair,    -   g) repeating said operations e) and f) until at least one        predetermined condition is satisfied, and    -   h) showing the result of said search to said enquirer when said        condition is satisfied.

Thus the system according to the invention searches in steps, each stepinvolving choosing an attribute or attribute from those available andchoosing a value from those available in the chosen attribute orattribute. Each step leads to the presentation of only pertinentinformation to the enquirer, since the enquirer is shown only searchcriteria that lead to responses and search criteria are shown only ifthere are responses.

According to one feature of the invention, said computation andinterface means e) for showing successive choices of attributes andvalues to said enquirer in the hierarchical order defined in said secondtable (C) comprise:

-   -   e1) means for establishing, by exploring the highest        hierarchical row not yet explored in said second table (C), a        list of attributes having at least two values represented in        said first table (S),        and one of the two means comprising:    -   e2) means for showing said list of attributes to said enquirer        with a view to choosing one of said attributes if said list of        attributes comprises at least two attributes, and    -   e3) means for showing the values of an attribute directly to        said enquirer with a view to choosing one of said values if said        list of attributes comprises only said attribute.

In one embodiment of the invention, said means e2) for showing said listof attributes to said enquirer with a view to choosing one of saidattributes if said list of attributes comprises at least two attributescomprise:

-   -   e21) means for establishing, in response to the choice of one of        said attributes by said enquirer, a list of values of said        chosen attribute represented in said first table (S), and    -   e22) means for showing said list of values to said enquirer with        a view to choosing one of said values.

In another embodiment of the invention:

-   -   said means e1) comprise means for establishing, for each of said        attributes from said list of attributes, a list of the values of        that attribute that are represented in said first table (S), and    -   said means e2) comprise means for showing said enquirer all the        attribute-value pairs selected by said means e1), with a view to        said enquirer choosing one of said pairs.

The invention also has one or more of the following features takensingly or in combination:

-   -   said condition of the operation A) is satisfied if said list of        attributes established by said means e1) is empty.    -   said condition of the operation executed by said means g) is        satisfied if the number of records in said first table (S) is        less than a predetermined number.    -   said computation and interface means comprise means for showing        said enquirer the number of said records in the first table (S)        consecutively to said operations executed by said means c) and        f).    -   said computation and interface means comprise means for showing        said enquirer a list of the attribute-value pairs previously        selected consecutively to said operations executed by said        means c) and f).    -   said computation and interface means comprise means for showing        said enquirer a list of the attribute-value pairs which,        although not selected by the enquirer, are nevertheless common        to all the remaining records (F), consecutively to said        operations executed by said means c) and f).    -   said computation and interface means comprise means for:    -   defining at least one of said attribute-value pairs constituting        a priority search criterion,    -   constructing said first table (S) and said second table (C) of        said operations executed by said means c) and d) by selecting,        from said set of records, a subset of said records satisfying        said criterion, and    -   executing said operations executed by said means e) to h) using        said subset of records.    -   said definition of a priority search criterion including the        step of prompting said enquirer to choose at least one priority        criterion consecutively to said step e), adding said priority        criterion chosen by said enquirer to a list of priority        criteria, and generating said subset of records by selecting        records from said set satisfying the priority criteria from said        list.    -   said means for defining a priority search criterion comprise        means for prompting said enquirer to choose at least one        priority crterion consecutively to said operation executed by        said means e), means for adding said priority criterion chosen        by said enquirer to a list (P) of priority criteria, and means        for generating said subset of records by selecting records from        said set satisfying the priority criteria from said list (P).    -   said system has a client-server architecture, said interface        means comprising a client terminal.

BRIEF DESCRIPTION OF THE INVENTION

Other features and advantages of the invention will emerge from thefollowing description of embodiments of the invention provided by way ofexample only and shown in the accompanying drawings, in which:

FIG. 1 is a table showing the hierarchical structure of all attributesor attributes and values associated with objects in a system accordingto the invention,

FIG. 2 is a table similar to the FIG. 1 table, showing the attributesand the values in the case of a practical application,

FIGS. 3 to 9 are flowcharts executed by the system according to theinvention, and

FIGS. 10 to 13 are tables illustrating one example of values coding usedby the system according to the invention.

DESCRIPTION OF THE PREFEERRED EMBODIMENTS

Reference will first be made to table T in FIG. 1 which shows thehierarchical structure of all attributes and values associated withobjects stored in a data processing resource and which can be searched.

The objects are represented by records F comprising:

-   -   firstly, diverse information which cannot be searched using the        mechanisms of the invention, for example texts, pictures,        digital data and/or other information of any kind, and    -   secondly, attribute-value (cna-cnu) pairs, each of which can        have one of several values, which belong to the FIG. 1        hierarchical table, and which serve equally as diverse        information and search criteria.

The cna-cnu pairs of a record F constitute a subset of the FIG. 1 tableT and have the following property: if table T includes sub-pairs cna-cnuof a particular pair cna-cnu belonging to the record, then one of thosesub-pairs exists in the record, i.e. the record is complete.

As shown in FIG. 1, in the hierarchically structured table T, theattributes and the values are classified hierarchically into rows A, B,C, etc. and, each attribute of a secondary row is attached to a value ofa attribute of a hierarchically higher row. Thus a Attribute 1 and aAttribute 2 in level or row A of the table correspond to mainclassification topics. Attribute 1 can have several possible values orvalues cnu1 a, cnu1 b, cnu1 c. There are four attributes in hierarchylevel or row B corresponding to sub-topics. The attributes cnu1 a 1 andcnu1 a 2 are attached to the value cnu1 a. Similarly, the attributescnu1 b 1 and enu1 b 2 are attached to the value cnu1 b. In the samehierarchy level or row B, the attribute cnu1 a 1 can have two possiblevalues or values, cnu1 a 1 a or cnu1 a 1 b. By working through the treestructure of the FIG. 1 hierarchy table T, it is possible to describeall of the attribute-value pairs of any of the records F and thehierarchical links of the various pairs in the record.

FIG. 2 shows an application of the FIG. 1 table T to the field of realestate. Thus the attributes in the higher level or row A comprise thetype of property, the nature of the transaction on that property, andthe location of the property. For the “Type of property” attribute, thevalue can be “Apartment” or “House”, for the “transaction” attribute,the value can be “Sale” or “Rental”, etc. In the next hierarchy row orlevel B, the attributes (Numbers of rooms, Floor, Plot, Price, etc.) areeach attached to one of the values of the higher hierarchical row: the“Number of rooms” and “Floor” attributes are attached to the “Apartment”value and the “Plot” attribute is attached to the “House” value.

As a result of the foregoing, each attribute-value pair in the FIG. 1hierarchy table T is unique and can be associated with a specific codefor designating said pairs in the records F.

Reference will also be made to the flowcharts of FIGS. 3 to 9, whichshow the mechanisms employed to search a set of records F coded inaccordance with the hierarchical structure of the FIG. 1 table.

The FIG. 3 general flowchart headed SUCCESSIVE SELECTIONS showssuccessive choices of attributes and values to an enquirer until ashortlist is obtained. Step 1 corresponds to starting a search, i.e. topreparing tables S and C intended to reflect all of the existing recordsF to be used for the search.

The table S is a table of the selected records F and theirattribute-value pairs, this first table being constantly updated as thesearch proceeds.

The second table C is a table of values present in any of the recordsfrom the first table S. If each record F is considered as a subset ofvalues, then the table C can be considered as the set consisting of theunion of the subsets F, on the understanding that each attribute-valuepair is shown only once in the table C. Moreover, this table isorganized in accordance with the hierarchical structure of the table Tto reflect the hierarchy of the attribute-value pairs. This means thatthe attributes are represented only implicitly in this table, becauseeach value has a specific code, from which its attribute can be deducedas shown by table T.

If, after starting the search in step 1, it is found that the totalnumber of stored records to be searched is less than a predeterminedvalue, the test 2 leads directly to showing the enquirer a list of allthe existing records in step 3.

If the number of records from the table S generated in step 1 is greaterthan said predetermined number, i.e. if the list is not a shortlist,test 2 leads to a attribute/value choice step 4. This step 4 correspondsto a module of which a first embodiment is shown in FIG. 4 and a secondembodiment is shown in FIG. 5.

After step or module 4, whether a attribute/value choice is stillpossible is examined in step 5. If there is still at least one choice,test 5 loops to the input of test 2. If not, the process goes direct tostep 3 showing the list of records found.

If the number of records shown to the enquirer exceeds a predeterminedparameter, this indicates that it is desirable to refine the search byrefining the attribute (attribute)-value criteria depending on thosechosen. In other words, it is necessary to add search criteria(attributes and their values) and/or to add values for one or moreexisting attributes (attributes). In this case there is the option of acommand to advise the manager of the definition of the criteria.

FIG. 4 shows a first embodiment 4.1 of the module 4 from FIG. 3. Themodule 4.1 begins with a step 10 headed DIVISIBLE ATTRIBUTES and shownin the FIGS. 6 and 7 flowcharts. The aim of the module 10 is to create alist of attributes by hierarchically searching the second table C forattributes having at least two values represented in the first table S.

Referring to FIG. 6, in step 100 the module 10 begins by exploring thehighest hierarchy row not yet explored in the second table C todetermine the attribute-value pairs of that row. In step 101 eachattribute is processed in a manner described below with reference toFIG. 7 and in step 102 a list of attributes is provided in order to beshown to the enquirer (as described below).

Referring to FIG. 7, step or module 101 begins with a step 200 ofsearching whether the attribute processed has a value represented in thetable S. If no value is found in step 201, i.e. if the result is R0, theprocess goes direct to a step 202 on completion of the processing of theattribute concerned. If the response to test 201 is positive, the nextstep is a step 203 of searching whether the attribute processed has asecond value represented in the table S. If the result of test 204 isnegative, i.e. if the attribute has only one value R1, the attribute isignored, but the search continues with step 205 by processing also allof the attributes dependent on the value that has been found.

If the response to test 204 is positive, the result is Rn, i.e. at leasttwo different values have been found In the table S for the attributebeing processed. The attribute processed is added in step 206 to thelist of results and the processing of that attribute then ends in step202.

The step 101 of processing a attribute (FIG. 7) is repeated for each ofthe attributes selected in step 100 (FIG. 6) until all the selectedattributes have been used up. A list of all the attributes having atleast two values represented in the table S is then available in step102, being understood that there are not shown therein attributes havingat least two values but which are hierarchically dependent on anotherattribute that is also in the list.

Referring again to FIG. 4, if test 11 shows that the list of theattributes 102 is empty, i.e. if there is no choice to be proposed tothe enquirer, as indicated in step 12, the list of records found isshown in step 3 (FIG. 3).

If test 11 shows that the list of attributes 102 is not empty, whetherthe list comprises one or more attributes is examined in step 13. If thelist comprises several attributes, they are shown to the enquirer instep 14, who chooses one of the attributes in step 15.

When the enquirer has chosen a attribute in step 15, or if test 13determines that the list of the attributes 102 contains only oneattribute, the SELECT VALUES module of step 16 creates a list of valuesrepresented in the table S for the single attribute or the attributechosen by the enquirer in step 15.

Referring to FIG. 8, the first step 300 of the SELECT VALUES module 16consists of marking in the table C the attribute chosen in step 15 or asingle attribute from the list 102, referred to hereinafter as theattribute CNA, and then finding the first value CNU of that attribute.The next step 301 searches whether the CNA-CNU pair is in a record fromthe table S. If this proves to be the case in step 302, in step 303 thevalue CNU is added to the list of the values of the attribute CNA. Thenumber of records from the table S comprising the CNA-CNU pair isoptionally computed in step 303, and a list of the records from thetable S that includes the CAN-CNU pair is created.

Next, a test 304 determines if the attribute CNA contains other values.If so, the next value is processed in step 305, after which step 301 isrepeated to determine if the new CNA-CNU pair is in one of the recordsfrom the table S. The steps 302, 303 and 304 are then repeated until allthe values of the attribute CNA have been examined. If, during thisprocess, it is found that a CNA-CNU pair is not part of one of therecords from the table S, the response to test 302 is negative, and thenext step is then a test 304, which means that the value in question isnot added to the list of results.

When all the values of a attribute CNA have been examined, the list ofthe selected values is supplied in step 306 and shown to the enquirer instep 17 (FIG. 4). The enquirer chooses a value from those shown to himin step 18 and the next step is a reduction step 19 which eliminatesfrom the table S all of the records that do not contain one of theattribute-value pairs indicated by the enquirer. The enquirer canoptionally be shown a list of the attribute-value pairs which, althoughthe enquirer has never selected them, are nevertheless common to all ofthe remaining records. These are pairs that have been deduced during thesearch process in order to eliminate attributes having only one possiblevalue; this elimination stems from the choice R1 made in step 204 (FIG.7).

After a step 20, which indicates that the enquirer has made a choice ofattribute in step 15 and of value in step 18, there is a loop to theinput of test 2 (FIG. 3) to determine if the list of the recordscontained in the table S is a shortlist or not. If it is a shortlist,the search is terminated and the next step is step 3 of showing therecords found; otherwise the module 4 processed in the manner describedabove is repeated to explore the attributes and values successively inhierarchical order until a shortlist is obtained. A shortlist is a listin which the number of records is less than or equal to a predeterminednumber, for example ten records.

FIG. 5 shows a second embodiment 4.2 of the FIG. 3 module 4 in which themodule 10 determines at the same time all of the divisible attributes(FIG. 6) and all the possible values of each of the divisible attributesfound by the module 16 (FIG. 8). As in the FIG. 4 embodiment, theprocess goes direct to a step 12 returning to step 3 if it is found instep 11 that there is no attribute having at least two valuesrepresented in the table S. Otherwise, the SELECT VALUES module 16 isexecuted for each of the attributes found and all of the attribute-valuepairs, i.e, the pairs offering a choice, are then shown to the enquirerin step 21.

In step 22 the enquirer chooses a pair and in step 23 the reduction ofstep 19 (FIG. 4) is performed. Step 24 indicates that a attribute-valuepair has been chosen, and there is then a loop to the input of test 2,as in the FIG. 4 module. As previously indicated, the SUCCESSIVESELECTIONS process then continues until a shortlist is obtained.

The FIG. 9 flowchart shows a different embodiment of the mechanisms fromFIGS. 3 to 8 whereby the successive selection process can be initializedby applying priority criteria necessarily yielding one or moreresponses.

These priority selection criteria (attribute/value pairs) can bepredefined, for example:

-   -   by an extract from earlier selections (as described below with        reference to FIG. 9);    -   as a function of a dependency on the mean used to access the        search system;    -   as a function of the prorecord of the enquirer;    -   as a function of the geographical location of the enquirer,        previously specified by the enquirer or detected using the GPS        or a like system;    -   by an unrestricted preliminary full text search covering all the        attributes/values of all the records;    -   in response to the enquirer specifying the processing only of        records supplied by one or more particular organizations;    -   etc.

the above being not an exhaustive list.

Referring to FIG. 9, step 401 corresponds to the optional predefinitionof one or more priority criteria. The list P referred to hereinafter isa list of priority criteria.

The next-step 402 automatically applies to all of the records F all ofthe priority criteria that have been predefined, in order to prepare thetables S and C described above.

The FIG. 3 SUCCESSIVE SELECTIONS algorithm is then executed in step 403using the records remaining after step 402 (steps 401 and 402 correspondto the search initialization phase 1); this entails successive choicesby the enquirer, as previously described.

When the FIG. 3 algorithm has been executed, the enquirer can choose oneor more priority criteria in step 404.

If the enquirer chooses to apply one or more priority criteria to thesearch in step 404, this means that the enquirer has noticed that thecriterion or criteria concerned is or are more important than any theenquirer might have selected using the FIG. 3 algorithm. The enquirertherefore wishes to apply the priority criterion or criteria alreadyobtained to all of the records F.

A positive response to test 404 therefore leads to completing in step405 the list P of priority criteria already obtained by adding thosenewly chosen. By construction, the list P of priority criteria gives atleast one response. The next step is step 402 in which the prioritycriteria from the list P completed in step 405 are applied automaticallyto all of the records F and the SUCCESSIVE SELECTIONS process is startedagain and continues until a negative response is obtained to test 404.The search then ends in step 406.

Reference will be made to the tables in FIGS. 10 to 13 which illustrateone example of coding values by tables of bits for implementing themechanism described above.

FIG. 10 is a tree form of representation equivalent to the FIG. 1 tableT. In this embodiment, each value of the tree hierarchy table isnumbered in the order in which it is encountered when working throughthe tree recursively; thus the first value that depends on the attributeCna1 in hierarchy level or row A is numbered 1 (Cnu1 in FIG. 10), thevalues of the attribute Cna1.1.1 (row B) dependent on Cnu1 are numbered2 and 3 (Cnu2 and Cnu3), etc. In the FIG. 10 example there are ninevalues.

As shown in FIG. 11, the record F describing each object comprises atable having as many memory locations as there are values in the FIG. 10table or tree, i.e. nine values in the example considered here. Each ofthese memory locations can take the logic value 1 if the correspondingvalue of the table T is included in the record and the logic value 0 ifnot. The position of each memory location in the record F, i.e. itsaddress, corresponds to a value number allocated in the table T as shownin FIG. 11. Thus each memory location of the record F is associated on aone-to-one basis with a attribute-value pair from the table T.

At all times during the search process, the table S is made up of all ofthe records F that have been selected up until that point. Referring toFIG. 12, it is assumed that after a first choice of a attribute Cna1 byan enquirer, there remain four records F1, F2, F3 and F4 in the table S.Those records have the following values:

-   -   F1: Cnu1, Cnu3, Cnu7 and Cnu8,    -   F2: Cnu4, Cnu5, Cnu7 and Cnu9,    -   F3: Cnu4, Cnu6, Cnu7 and Cnu9, and    -   F4: Cnu1, Cnu2, Cnu7, and Cnu8.

Given that, in the preceding phase, the enquirer chose the attributeCna1, the enquirer is now prompted to choose between the values Cnu1 andCnu4. If the enquirer chooses Cnu1, the table S thereafter comprisesonly the records F1 and F4, and as shown in FIG. 13, the table C isdeduced directly from the table S, by applying an inclusive-OR operatorto each of the bits of the same order in each of the selected records(F1 and F4).

The table C is therefore organized in the same manner as a record F: thebits or memory locations constituting the table are stored in the orderof hierarchical exploration of the values of the table T. The ordernumber of the bit also enables the description of the value to be foundin one or more auxiliary records, not shown (for example one record foreach language). This also allows grouping of the bits of the values thatare dependent on the same attribute, irrespective of the hierarchicaldifference between the attribute and the values concerned. For example,considered here, the order is as follows: Cnu1, Cnu2, Cnu3, Cnu4, Cnu5,CnuG, Cnu7, Cnu8, Cnu9.

The advantage of this coding mode is that it provides a very compactrepresentation of the table T, the records F and the tables S and C ifthe average number of values per attribute in the table T is low. Aplurality of values can be represented in a single machine word. Thismode of coding and organization further offers the possibility ofapplying the OR logic operator to the whole of a machine word, and thusto a plurality of values at a time, which yields a considerabletimesaving in finding the values represented in any of the remainingrecords. Moreover, when the FIG. 8 SELECT VALUES module 16 is executed,it is possible to test a plurality of values simultaneously (as manyvalues as there are bits in a machine word), which accelerates thismodule. The drawback is that initializing the search necessitatesscanning all the records, which can be circumvented by putting togetherpresorted auxiliary tables for analyzing the first criterion introduced.

In practice, the FIG. 12 table S is a table of pointers to each of therecords F selected in the set of records searched.

The table S initially contains a list of all the records F and a markerindicates the total number of records selected. In each step of thesearch, all the records up to the marker are analyzed, the recordsretained are pushed to one end of the table, and the marker is moved toindicate the new number of remaining records.

The rejected records can optionally be compacted at the other end of thetable, which can therefore be segmented as a function of the searchsteps so that a search step can be returned to quickly.

As a result of the foregoing, the method and the system described areparticularly suitable for multicritera searching when the topic of thesearch allows the criteria to be organized in a hierarchical manner. Ofcourse, the hierarchical tree or structure of the table T varies as afunction of the topic considered, i.e. is not the same according towhether the topic relates, for example, to automobiles, real estate,domestic appliances, etc. The search method described can be preceded bya traditional search, for example using keywords, to select the topic toconstitute the root R of all the attributes to be searched in the mannerdescribed with reference to FIGS. 3 to 9.

The data processing system for implementing the mechanisms describedrequires data storage means to store the table T, the records F and thetables C and S, computation means to execute the process described withreference to FIGS. 3 to 9, and interface means for showing choices tothe enquirer, enabling the enquirer to make choices, and for showing theenquirer the result of those choices. The data processing system can beof any kind, in particular a client-server architecture system accessedvia a network such as the Internet from a client terminal such as apersonal computer, a mobile telephone with data entry or voicerecognition, etc.

The choices offered to an enquirer can be shown to the enquirer on thescreen of the terminal in the form of dynamic pages consisting of one ormore of the following windows, for example:

-   -   a window showing a reactive geographical map with color shades        or pictograms depending on the number of responses specific to        each location (country, region, county, town);    -   a window representing reactive vertical histograms showing        prices, measurements or qualities (weight, size, area, room        size, distance, timetable, period, color, etc.);    -   a window of remaining possibilities with the selection criteria        (attributes or attributes) still available and, for each of        those criteria, a list of the values or values available,        opposite the number of responses, shown in the form of        horizontal histograms or pull-down menus;    -   a window representing the choices already made by the enquirer        in the form of a virtual record comprising a list of attributes        and values that is added to as and when successive choices are        made;    -   a window of results summarized in the form of two-dimensional        tables with reactive elements (photos, texts, headings, logos,        pull-down menus, etc.) or in the form of dynamic cumulative        totals shown graphically (pie charts, histograms, etc.);    -   etc.

The elements of the various windows are reactive in the sense that theyenable a choice to be made by using a mouse to move a pointer over theelements concerned, as is now the norm.

It goes without saying that the embodiments described are merelyexamples which can be modified without departing from the scope of theinvention, in particular by substituting technical equivalents.

1. A data processing system for selecting objects from a set of objectsstored in said system, wherein each one of said set of objects belongsto a set of predefined categories and each one of said predefinedcategories is defined by a predefined attribute-value pair comprising anattribute and a value of said object, said system comprising: a firststoring means for storing a tree-structured table of all said predefinedattribute-value pairs associated with said stored objects, saidattributes and said values being classified hierarchically in severallevels in said table, each said attribute in a subordinate level beingattached to one of said values of a higher-level attribute and each saidattribute-value pair being associated with a specific binary code, asecond storing means for storing a record for each stored object, saidrecord comprising a list of all the specific binary codes attachedrespectively to said attribute-value pairs belonging to said storedobject, and a computation and interface means for, in response to asearch request from an enquirer, performing the operations of: i)constructing a first table containing all the stored records relating tosaid request, ii) constructing, by means of said binary codes, and inaccordance with said tree-structure of said predefined attribute-valuepairs, a second table of the values present in any of said records ofsaid first table, iii) showing successive choices of attributes andvalues to said enquirer, in the hierarchical order defined in saidsecond table, iv) updating said first table in response to the choice bysaid enquirer of an attribute-value pair consecutively to said operationiii), by selecting in said first table the records including saidselected attribute-value pair, v) repeating said operations ii), iii),and iv) until at least one predetermined condition is satisfied, and vi)showing the result of said search to said enquirer when said conditionis satisfied.
 2. A system according to claim 1, wherein said computationand interface means for showing successive choices of attributes andvalues to said enquirer in the hierarchical order defined in said secondtable comprise: means for establishing, by exploring the highesthierarchical level not yet explored in said second table, a list ofattributes having at least two values represented in said first table,and one of the two means comprising: a first showing means for showingsaid list of attributes to said enquirer with a view to choosing one ofsaid attributes if said list of attributes comprises at least twoattributes, and a second showing means for showing the values of anattribute directly to said enquirer with a view to choosing one of saidvalues if said list of attributes comprises only said attribute.
 3. Asystem according to claim 2, wherein said first showing means forshowing said list of attributes to said enquirer with a view to choosingone of said attributes if said list of attributes comprises at least twoattributes comprise: means for establishing, in response to the choiceof one of said attributes by said enquirer, a list of values of saidchosen attribute represented in said first table, and means for showingsaid list of values to said enquirer with a view to choosing one of saidvalues.
 4. A system according to claim 2, wherein: said establishingmeans comprise means for establishing, for each of said attributes fromsaid list of attributes, a list of the values of that attribute that arerepresented in said first table, and said first showing means comprisemeans for showing said enquirer all the attribute-value pairs selectedby said establishing means, with a view to said enquirer choosing one ofsaid pairs.
 5. A system according to claim 2, wherein said condition ofthe operation v) is satisfied if said list of attributes established bysaid establishing means is empty.
 6. A system according to claim 1,wherein said condition of the operation executed by said operation v) issatisfied if the number of records in said first table is less than apredetermined number.
 7. A system according to claim 1, wherein saidcomputation and interface means comprise means for showing said enquirerthe number of said records in the first table consecutively to saidoperations executed by said operations i) and iv).
 8. A system accordingto claim 1, wherein said computation and interface means comprise meansfor showing said enquirer a list of the attribute-value pairs previouslyselected consecutively to said operations executed by said operations i)and iv).
 9. A system according to claim 1, wherein said computation andinterface means comprise means for showing said enquirer a list of theattribute-value pairs which, although not selected by the enquirer, arenevertheless common to all the remaining records, consecutively to saidoperations executed by said operations i) and iv).
 10. A systemaccording to claim 1, wherein said computation and interface meanscomprise means for: defining at least one of said attribute-value pairsconstituting a priority search criterion, constructing said first tableand said second table of said operations executed by said operations i)and ii) by selecting, from all of said records, a subset of said recordssatisfying said criterion, and executing said operations executed bysaid operations i) to vi) using said subset of records.
 11. A systemaccording to claim 10, wherein said means for defining a priority searchcriterion comprise means for prompting said enquirer to choose at leastone priority criterion consecutively to said operation executed by saidoperation iii), means for adding said priority criterion chosen by saidenquirer to a list of priority criteria, and means for generating saidsubset of records by selecting records from said set satisfying thepriority criteria from said list of priority criteria.
 12. A systemaccording to claim 1 having a client-server architecture, said interfacemeans comprising a client terminal.
 13. A data processing method forselecting objects from a set of objects stored in the form of records ina data processing system, wherein each one of said set of objectsbelongs to a set of predefined categories and each one of saidpredefined categories is defined by a predefined attribute-value paircomprising an attribute and a value of said object, said methodcomprising the steps of: coding the data related to said objects by thesub-steps of a) establishing a treestructured table of all saidpredefined attributevalue pairs associated with said stored objects,said attributes and said values being classified hierarchically inseveral levels in said table, each said attribute in a subordinate levelbeing attached to one of said values of a higher-level attribute andeach said attribute-value pair being associated with a specific binarycode, b) establishing a record for each stored object, said recordcomprising a list of all the specific binary codes attached respectivelyto said attributevalue pairs belonging to said stored object, and inresponse to a search request from an enquirer, the sub-steps of: c)constructing a first table containing all the stored records relating tosaid request, d) constructing, by means of said binary codes, and inaccordance with said treestructure of said predefined attribute-valuepairs, a second table of the values present in any of said records ofsaid first table, e) showing successive choices of attributes and valuesto said enquirer, in the hierarchical order defined in said secondtable, f) updating said first table in response to the choice by saidenquirer of an attribute-value pair consecutively to said sub-step e),by selecting in said first table the records including said selectedattribute-value pair, g) repeating said sub-steps d), e) and f) until atleast one predetermined condition is satisfied, and h) showing theresult of said search to said enquirer when said condition is satisfied.14. A method according to claim 13, wherein said sub-step e) comprises:e1) establishing, by exploring the highest hierarchical level not yetexplored in said second table, a list of attributes having at least twovalues represented in said first table, and one of the two sub-stepscomprising: e2) showing said list of attributes to said enquirer with aview to choosing one of said attributes if said list of attributescomprises at least two attributes, and e3) showing the values of anattribute directly to said enquirer with a view to choosing one of saidvalues if said list of attributes comprises only said attribute.
 15. Amethod according to claim 14, wherein said sub-step e2) for showing saidlist of attributes to said enquirer with a view to choosing one of saidattributes if said list of attributes comprises at least two attributescomprises: e21) establishing, in response to the choice of one of saidattributes by said enquirer, a list of values of said chosen attributerepresented in said first table, and e22) showing said list of values tosaid enquirer with a view to choosing one of said values.
 16. A methodaccording to claim 14, wherein: said sub-step e1) comprisesestablishing, for each of said attributes from said list of attributes,a list of the values of that attribute that are represented in saidfirst table, and said sub-step e2) comprises showing said enquirer allthe attribute-value pairs selected at said sub-step e1), with a view tosaid enquirer choosing one of said pairs.
 17. A method according toclaim 14, wherein said condition of the sub-step g) is satisfied if saidlist of attributes established at said sub-step e1) is empty.
 18. Amethod according to claim 13, wherein said condition of the operationexecuted at said sub-step g) is satisfied if the number of records insaid first table is less than a predetermined number.
 19. A methodaccording to claim 13, further comprising showing said enquirer thenumber of said records in the first table consecutively to saidoperations executed by said sub-steps c) and f.
 20. A method accordingto claim 13, further comprising showing said enquirer a list of theattribute-value pairs previously selected consecutively to saidoperations executed by said sub-steps c) and f).
 21. A method accordingto claim 13, further comprising showing said enquirer a list of theattribute-value pairs which, although not selected by the enquirer, arenevertheless common to all the remaining records, consecutively to saidoperations executed by said sub-steps c) and f).
 22. A method accordingto claim 13, further comprising: defining at least one of saidattributevalue pairs constituting a priority search criterion,constructing said first table and said second table of said operationsexecuted at said sub-steps c) and d) by selecting, from all of saidrecords, a subset of said records satisfying said criterion, andexecuting said sub-steps e) to h) using said subset of records.
 23. Amethod according to claim 22, wherein defining at least one of saidattribute-value pairs constituting a priority search criterion comprisesthe step of prompting said enquirer to choose at least one prioritycriterion consecutively to said sub-step e), adding said prioritycriterion chosen by said enquirer to a list of priority criteria, andgenerating said subset of records by selecting records from said setsatisfying the priority criteria from said list of priority criteria.